import os

from django.http import JsonResponse
from paddleocr import PaddleOCR
from django.core.files.storage import default_storage

from config.settings import SITE_ROOT


def ocr(request):
    # return JsonResponse({'code': 422, 'msg': 'img_name文件不存在'})
    ocr = PaddleOCR(
        # 模型路径下必须含有model和params文件
        # 保留 检测, 识别, 方向之一都可以ocr, 但影响一些识别
        det_model_dir='./database/model/ch_PP-OCRv2_det_slim_quant_infer',  # 文本检测模型
        cls_model_dir='./database/model/ch_ppocr_mobile_v2.0_cls_slim_infer',  # 文本方向模型
        rec_model_dir='./database/model/ch_PP-OCRv2_rec_slim_quant_infer'  # 文本识别模型
    )

    file = request.FILES['file']

    img_path = SITE_ROOT + "/database/test_img/" + 'test01.png'
    default_storage.save(file.name, file)
    if not os.path.exists(file.name):
        return JsonResponse({'code': 422, 'msg': 'img_name文件不存在'})
    result = ocr.ocr(file.name, cls=False)
    content = [line[1][0] for line in result]
    return JsonResponse({'code': 200, 'msg': 'success', 'data': content})
